import request from '@/utils/http/index'
import { PageParams, PageResponse } from '@/api/model/baseModel'

// 分类管理相关类型
export interface ClassifyItem {
  recommendTypeId?: string
  name: string
  sort: number
  createTime?: string
  updateTime?: string
}

// 内容管理相关类型
export interface ContentItem {
  recommendId?: string
  userId?: string
  buyerUserId?: string
  fileType?: number // 1:图片 2:视频
  fileUrl?: string
  cover?: string
  content?: string
  status?: number // 0:待审核 1:审核通过 2:审核拒绝
  publishStatus?: number // 0:未审核 1:已发布 2:审核失败
  reviewStatus?: number // 0:未审核 1:审核通过 2:审核拒绝
  reason?: string
  viewCount?: number
  browseCount?: number
  likeCount?: number
  commentCount?: number
  shareCount?: number
  createTime?: string
  updateTime?: string
  userInfo?: {
    userId: string
    nickname: string
    avatar: string
  }
  productInfo?: {
    productId: string
    productName: string
    productImage: string
    section: string
  }
}

// 风控配置类型
  export interface ControlConfig {
    enable: boolean
  }

  // 后端统一响应结构
  export interface ApiResponse<T> {
    code: string
    data: T
    errorData: any
    message: string
    name: string
    describe: string
    json: string
  }

export class ContentService {
  // *************内容管理*************
  // 内容管理 - 列表
  static contentQuery(params: PageParams) {
    return request.get<PageResponse<ContentItem>>({
      url: '/recommend/trends/page',
      params
    })
  }

  // 内容详情
  static contentInfo(params: { recommendId: string }) {
    return request.get<ContentItem>({
      url: '/recommend/trends/get',
      params
    })
  }

  // 删除内容
  static contentDel(params: { recommendId: string }) {
    return request.del({
      url: '/recommend/trends/delete',
      params
    })
  }

  // 内容审核
  static contentAudit(params: { recommendId: string; reviewStatus: number; reason?: string }) {
    return request.post({
      url: '/recommend/trends/review',
      params
    })
  }

  // *************分类管理*************
  // 分类列表
  static classifyQuery(params: PageParams) {
    return request.get<ApiResponse<PageResponse<ClassifyItem>>>({
      url: '/recommend/type/page',
      params
    })
  }

  // 新增分类
  static classifyAdd(params: Omit<ClassifyItem, 'recommendTypeId'>) {
    return request.post({
      url: '/recommend/type/save',
      params
    })
  }

  // 编辑分类
  static classifyEdit(params: ClassifyItem) {
    return request.post({
      url: '/recommend/type/update',
      params
    })
  }

  // 删除分类
  static classifyDelete(params: { recommendTypeId: string }) {
    return request.del({
      url: '/recommend/type/delete',
      params
    })
  }

  // *************内容风控*************
  // 风控配置
  static controlConfig(params: { enable: boolean }) {
    return request.get<ApiResponse<any>>({
      url: '/recommend/risk-control/set',
      params
    })
  }

  // 获取风控配置
  static getControl() {
    return request.get<ApiResponse<boolean>>({
      url: '/recommend/risk-control/get'
    })
  }
}
